home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 10 / AACD 10.iso / AACD / Resources / Online / Term / Extras / Source / term-source.lha / CapturePanel.c < prev    next >
C/C++ Source or Header  |  1996-10-20  |  17KB  |  664 lines

  1. /*
  2. **    CapturePanel.c
  3. **
  4. **    Editing panel for log file, buffer and capture configuration
  5. **
  6. **    Copyright © 1990-1996 by Olaf `Olsen' Barthel
  7. **        All Rights Reserved
  8. **
  9. **    :ts=4
  10. */
  11.  
  12. #ifndef _GLOBAL_H
  13. #include "Global.h"
  14. #endif
  15.  
  16. enum    {    GAD_LOGACTIONS, GAD_LOGFILE, GAD_SELECT_LOGFILE, GAD_LOGCALLS, GAD_CALL_LOGFILE,GAD_SELECT_CALL_LOGFILE,
  17.             GAD_MAX_BUFFER_SIZE,GAD_BUFFER_SAFETY_MEMORY,GAD_BUFFER_ENABLED,GAD_BUFFER_PATH,GAD_SELECT_BUFFER_PATH,
  18.             GAD_CONNECT_AUTO_CAPTURE, GAD_AUTOCAPTURE_DATE, GAD_CAPTURE_FILTER, GAD_CONVERT_CHARS,
  19.             GAD_CAPTURE_PATH, GAD_SELECT_CAPTURE_PATH, GAD_OPEN_BUFFER_WINDOW, GAD_BUFFER_MODE,
  20.             GAD_REMEMBER_WINDOW_POS,GAD_OPEN_BUFFER_SCREEN,GAD_REMEMBER_SCREEN_POS,GAD_SEARCH_HISTORY,
  21.             GAD_SCREENMODE,GAD_BUFFERSCREEN_POSITION,GAD_BUFFERWIDTH,GAD_USE, GAD_CANCEL,
  22.             GAD_PAGER, GAD_PAGEGROUP, GAD_CALL_FILE_FORMAT
  23.         };
  24.  
  25. BOOL
  26. CapturePanel(struct Window *Parent,struct Configuration *LocalConfig)
  27. {
  28.     STATIC LONG PageTitleID[] =
  29.     {
  30.         MSG_V36_0008,
  31.         MSG_V36_0011,
  32.         MSG_V36_0009,
  33.         MSG_V36_0014,
  34.         MSG_V36_0013,
  35.         -1
  36.     };
  37.  
  38.     STATIC LONG FileFormatID[] =
  39.     {
  40.         MSG_CALL_FILE_FORMAT_1_TXT,
  41.         MSG_CALL_FILE_FORMAT_2_TXT,
  42.         -1
  43.     };
  44.  
  45.     STATIC BYTE InitialPage = 0;
  46.  
  47.     LayoutHandle *Handle;
  48.     BOOL UseIt;
  49.  
  50.     UseIt = FALSE;
  51.  
  52.     SaveConfig(LocalConfig,PrivateConfig);
  53.  
  54.     if(Handle = LT_CreateHandleTags(Parent->WScreen,
  55.         LAHN_LocaleHook,    &LocaleHook,
  56.         LAHN_ExitFlush,        FALSE,
  57.     TAG_DONE))
  58.     {
  59.         BYTE OpenBufferWindow,OpenBufferScreen;
  60.         UBYTE ModeName[DISPLAYNAMELEN + 1];
  61.         struct Window *PanelWindow;
  62.         ULONG DisplayMode;
  63.  
  64.         OpenBufferScreen = PrivateConfig->CaptureConfig->OpenBufferScreen;
  65.         OpenBufferWindow = PrivateConfig->CaptureConfig->OpenBufferWindow;
  66.  
  67.         if(OpenBufferWindow > BUFFER_END)
  68.             OpenBufferWindow = BUFFER_END;
  69.         else
  70.         {
  71.             if(OpenBufferWindow < BUFFER_TOP)
  72.                 OpenBufferWindow = BUFFER_TOP;
  73.         }
  74.  
  75.         if(OpenBufferScreen > BUFFER_END)
  76.             OpenBufferScreen = BUFFER_END;
  77.         else
  78.         {
  79.             if(OpenBufferScreen < BUFFER_TOP)
  80.                 OpenBufferScreen = BUFFER_TOP;
  81.         }
  82.  
  83.         DisplayMode = PrivateConfig->CaptureConfig->BufferScreenMode;
  84.  
  85.         if(ModeNotAvailable(DisplayMode))
  86.         {
  87.             if(PrivateConfig && PrivateConfig->ScreenConfig)
  88.                 DisplayMode = PrivateConfig->ScreenConfig->DisplayMode;
  89.             else
  90.                 DisplayMode = INVALID_ID;
  91.         }
  92.  
  93.         if(ModeNotAvailable(DisplayMode))
  94.         {
  95.             struct Screen *PubScreen;
  96.  
  97.             if(PubScreen = LockPubScreen(NULL))
  98.             {
  99.                 DisplayMode = GetVPModeID(&PubScreen->ViewPort);
  100.  
  101.                 UnlockPubScreen(NULL,PubScreen);
  102.             }
  103.             else
  104.                 DisplayMode = DEFAULT_MONITOR_ID | HIRES_KEY;
  105.         }
  106.  
  107.         GetModeName(DisplayMode,ModeName,sizeof(ModeName));
  108.  
  109.         LT_New(Handle,
  110.             LA_Type,    VERTICAL_KIND,
  111.         TAG_DONE);
  112.         {
  113.             LT_New(Handle,
  114.                 LA_Type,VERTICAL_KIND,
  115.             TAG_DONE);
  116.             {
  117.                 LT_New(Handle,
  118.                     LA_Type,        TAB_KIND,
  119.                     LA_ID,            GAD_PAGER,
  120.                     LA_LabelID,        MSG_XFER_PAGE_TXT,
  121.                     LACY_LabelTable,PageTitleID,
  122.                     LACY_AutoPageID,GAD_PAGEGROUP,
  123.                     LACY_TabKey,    TRUE,
  124.                     LA_BYTE,        &InitialPage,
  125.                     LATB_FullWidth,    TRUE,
  126.                 TAG_DONE);
  127.  
  128.                 LT_EndGroup(Handle);
  129.             }
  130.  
  131.             LT_New(Handle,
  132.                 LA_Type,        VERTICAL_KIND,
  133.                 LA_ID,            GAD_PAGEGROUP,
  134.                 LAGR_ActivePage,InitialPage,
  135.             TAG_DONE);
  136.             {
  137.                 LT_New(Handle,
  138.                     LA_Type,    VERTICAL_KIND,
  139.                 TAG_DONE);
  140.                 {
  141.                     LT_New(Handle,
  142.                         LA_LabelID,        MSG_CAPTUREPANEL_LOG_ACTIONS_GAD,
  143.                         LA_Type,        CHECKBOX_KIND,
  144.                         LA_ID,            GAD_LOGACTIONS,
  145.                         LA_BYTE,        &PrivateConfig->CaptureConfig->LogActions,
  146.                     TAG_DONE);
  147.  
  148.                     LT_New(Handle,
  149.                         LA_LabelID,        MSG_CAPTUREPANEL_LOGFILE_GAD,
  150.                         LA_Type,        STRING_KIND,
  151.                         LA_ID,            GAD_LOGFILE,
  152.                         LA_Chars,        20,
  153.                         LA_STRPTR,        PrivateConfig->CaptureConfig->LogFileName,
  154.                         LAST_Picker,    TRUE,
  155.                         GTST_MaxChars,    sizeof(PrivateConfig->CaptureConfig->LogFileName) - 1,
  156.                     TAG_DONE);
  157.  
  158.                     LT_New(Handle,
  159.                         LA_Type,        XBAR_KIND,
  160.                     TAG_DONE);
  161.  
  162.                     LT_New(Handle,
  163.                         LA_LabelID,        MSG_CAPTUREPANEL_LOG_CALLS_GAD,
  164.                         LA_Type,        CHECKBOX_KIND,
  165.                         LA_ID,            GAD_LOGCALLS,
  166.                         LA_BYTE,        &PrivateConfig->CaptureConfig->LogCall,
  167.                     TAG_DONE);
  168.  
  169.                     LT_New(Handle,
  170.                         LA_LabelID,        MSG_CAPTUREPANEL_CALL_LOGFILE_GAD,
  171.                         LA_Type,        STRING_KIND,
  172.                         LA_ID,            GAD_CALL_LOGFILE,
  173.                         LA_STRPTR,        PrivateConfig->CaptureConfig->CallLogFileName,
  174.                         LAST_Picker,    TRUE,
  175.                         GTST_MaxChars,    sizeof(PrivateConfig->CaptureConfig->CallLogFileName) - 1,
  176.                     TAG_DONE);
  177.  
  178.                     LT_New(Handle,
  179.                         LA_LabelID,        MSG_CALL_FILE_FORMAT_GAD,
  180.                         LA_Type,        CYCLE_KIND,
  181.                         LA_ID,            GAD_CALL_FILE_FORMAT,
  182.                         LACY_LabelTable,FileFormatID,
  183.                         LA_BYTE,        &PrivateConfig->CaptureConfig->LogFileFormat,
  184.                     TAG_DONE);
  185.  
  186.                     LT_EndGroup(Handle);
  187.                 }
  188.  
  189.                 LT_New(Handle,
  190.                     LA_Type,    VERTICAL_KIND,
  191.                 TAG_DONE);
  192.                 {
  193.                     LT_New(Handle,
  194.                         LA_Type,    VERTICAL_KIND,
  195.                     TAG_DONE);
  196.                     {
  197.                         LT_New(Handle,
  198.                             LA_LabelID,        MSG_CAPTUREPANEL_CONNECT_AUTO_CAPTURE_GAD,
  199.                             LA_Type,        CHECKBOX_KIND,
  200.                             LA_ID,            GAD_CONNECT_AUTO_CAPTURE,
  201.                             LA_BYTE,        &PrivateConfig->CaptureConfig->ConnectAutoCapture,
  202.                         TAG_DONE);
  203.  
  204.                         LT_New(Handle,
  205.                             LA_LabelID,        MSG_CAPTUREPANEL_CAPTURE_FILTER_ENABLED_GAD,
  206.                             LA_Type,        CHECKBOX_KIND,
  207.                             LA_ID,            GAD_CAPTURE_FILTER,
  208.                             LA_BYTE,        &PrivateConfig->CaptureConfig->CaptureFilterMode,
  209.                         TAG_DONE);
  210.  
  211.                         LT_New(Handle,
  212.                             LA_LabelID,        MSG_CONVERT_CHARACTERS_GAD,
  213.                             LA_Type,        CHECKBOX_KIND,
  214.                             LA_BYTE,        &PrivateConfig->CaptureConfig->ConvertChars,
  215.                             GA_Disabled,    !PrivateConfig->CaptureConfig->CaptureFilterMode,
  216.                             LA_ID,            GAD_CONVERT_CHARS,
  217.                         TAG_DONE);
  218.  
  219.                         LT_EndGroup(Handle);
  220.                     }
  221.  
  222.                     LT_New(Handle,
  223.                         LA_Type,    VERTICAL_KIND,
  224.                     TAG_DONE);
  225.                     {
  226.                         LT_New(Handle,
  227.                             LA_LabelID,        MSG_CAPTUREPANEL_CREATION_DATE_GAD,
  228.                             LA_Type,        CYCLE_KIND,
  229.                             LA_ID,            GAD_AUTOCAPTURE_DATE,
  230.                             LA_BYTE,        &PrivateConfig->CaptureConfig->AutoCaptureDate,
  231.                             LACY_FirstLabel,MSG_CAPTUREPANEL_APPEND_DATE_TXT,
  232.                             LACY_LastLabel,    MSG_CAPTUREPANEL_WRITE_DATE_TO_FILE_TXT,
  233.                         TAG_DONE);
  234.  
  235.                         LT_New(Handle,
  236.                             LA_LabelID,        MSG_CAPTUREPANEL_CAPTURE_PATH_GAD,
  237.                             LA_Type,        STRING_KIND,
  238.                             LA_ID,            GAD_CAPTURE_PATH,
  239.                             LA_Chars,        20,
  240.                             LA_STRPTR,        PrivateConfig->CaptureConfig->CapturePath,
  241.                             LAST_Picker,    TRUE,
  242.                             GTST_MaxChars,    sizeof(PrivateConfig->CaptureConfig->CapturePath) - 1,
  243.                             LA_ExtraSpace,    TRUE,
  244.                         TAG_DONE);
  245.  
  246.                         LT_EndGroup(Handle);
  247.                     }
  248.  
  249.                     LT_EndGroup(Handle);
  250.                 }
  251.  
  252.                 LT_New(Handle,
  253.                     LA_Type,    VERTICAL_KIND,
  254.                 TAG_DONE);
  255.                 {
  256.                     LT_New(Handle,
  257.                         LA_LabelID,                MSG_CAPTUREPANEL_BUFFER_ENABLED_GAD,
  258.                         LA_Type,                CHECKBOX_KIND,
  259.                         LA_ID,                    GAD_BUFFER_ENABLED,
  260.                         LA_BYTE,                &PrivateConfig->CaptureConfig->BufferEnabled,
  261.                     TAG_DONE);
  262.  
  263.                     LT_New(Handle,
  264.                         LA_LabelID,                MSG_CAPTUREPANEL_MAX_BUFFER_SIZE_GAD,
  265.                         LA_Type,                INTEGER_KIND,
  266.                         LA_ID,                    GAD_MAX_BUFFER_SIZE,
  267.                         LA_LONG,                &PrivateConfig->CaptureConfig->MaxBufferSize,
  268.                         LAIN_UseIncrementers,    TRUE,
  269.                         LAIN_Min,                0,
  270.                     TAG_DONE);
  271.  
  272.                     LT_New(Handle,
  273.                         LA_LabelID,                MSG_CAPTUREPANEL_BUFFER_SAFETY_MEMORY_GAD,
  274.                         LA_Type,                INTEGER_KIND,
  275.                         LA_ID,                    GAD_BUFFER_SAFETY_MEMORY,
  276.                         LA_LONG,                &PrivateConfig->CaptureConfig->BufferSafetyMemory,
  277.                         LAIN_UseIncrementers,    TRUE,
  278.                         LAIN_Min,                0,
  279.                     TAG_DONE);
  280.  
  281.                     LT_New(Handle,
  282.                         LA_LabelID,                MSG_CAPTUREPANEL_BUFFER_PATH_GAD,
  283.                         LA_Type,                STRING_KIND,
  284.                         LA_ID,                    GAD_BUFFER_PATH,
  285.                         LA_STRPTR,                PrivateConfig->CaptureConfig->BufferPath,
  286.                         LAST_Picker,            TRUE,
  287.                         LA_Chars,                20,
  288.                         GTST_MaxChars,            sizeof(PrivateConfig->CaptureConfig->BufferPath) - 1,
  289.                     TAG_DONE);
  290.  
  291.                     LT_New(Handle,
  292.                         LA_LabelID,                MSG_CAPTUREPANEL_BUFFER_LINE_WIDTH_GAD,
  293.                         LA_Type,                SliderType,
  294.                         LA_ID,                    GAD_BUFFERWIDTH,
  295.                         LA_UBYTE,                &PrivateConfig->CaptureConfig->BufferWidth,
  296.                         GTSL_Min,                80,
  297.                         GTSL_Max,                BUFFER_LINE_MAX,
  298.                         GTSL_LevelFormat,        "%3ld",
  299.                     TAG_DONE);
  300.  
  301.                     LT_New(Handle,
  302.                         LA_LabelID,                MSG_BUFFER_OPERATION_MODE_TXT,
  303.                         LA_Type,                CYCLE_KIND,
  304.                         LA_ID,                    GAD_BUFFER_MODE,
  305.                         LA_BYTE,                &PrivateConfig->CaptureConfig->BufferMode,
  306.                         LACY_FirstLabel,        MSG_BUFFER_MODE1_TXT,
  307.                         LACY_LastLabel,            MSG_BUFFER_MODE2_TXT,
  308.                     TAG_DONE);
  309.  
  310.                     LT_New(Handle,
  311.                         LA_Type,                XBAR_KIND,
  312.                     TAG_DONE);
  313.  
  314.                     if(PrivateConfig->CaptureConfig->SearchHistory < 1)
  315.                         PrivateConfig->CaptureConfig->SearchHistory = 10;
  316.  
  317.                     LT_New(Handle,
  318.                         LA_LabelID,                MSG_CAPTUREPANEL_SEARCH_HISTORY_GAD,
  319.                         LA_Type,                INTEGER_KIND,
  320.                         LA_ID,                    GAD_SEARCH_HISTORY,
  321.                         LA_Chars,                8,
  322.                         LAIN_UseIncrementers,    TRUE,
  323.                         LAIN_Min,                1,
  324.                         LAIN_Max,                255,
  325.                         LA_BYTE,                &PrivateConfig->CaptureConfig->SearchHistory,
  326.                     TAG_DONE);
  327.  
  328.                     LT_EndGroup(Handle);
  329.                 }
  330.  
  331.                 LT_New(Handle,
  332.                     LA_Type,    VERTICAL_KIND,
  333.                 TAG_DONE);
  334.                 {
  335.                     LT_New(Handle,
  336.                         LA_Type,    VERTICAL_KIND,
  337.                     TAG_DONE);
  338.                     {
  339.                         LT_New(Handle,
  340.                             LA_LabelID,            MSG_CAPTUREPANEL_OPEN_BUFFER_SCREEN_GAD,
  341.                             LA_Type,            MX_KIND,
  342.                             LA_ID,                GAD_OPEN_BUFFER_SCREEN,
  343.                             LA_BYTE,            &OpenBufferScreen,
  344.                             LAMX_FirstLabel,    MSG_CAPTUREPANEL_TOP_TXT,
  345.                             LAMX_LastLabel,        MSG_CAPTUREPANEL_END_TXT,
  346.                         TAG_DONE);
  347.  
  348.                         LT_New(Handle,
  349.                             LA_LabelID,            MSG_CAPTUREPANEL_REMEMBER_BUFFER_SCREEN_GAD,
  350.                             LA_Type,            CHECKBOX_KIND,
  351.                             LA_ID,                GAD_REMEMBER_SCREEN_POS,
  352.                             LA_BYTE,            &PrivateConfig->CaptureConfig->RememberBufferScreen,
  353.                             LA_ExtraSpace,        TRUE,
  354.                         TAG_DONE);
  355.  
  356.                         LT_New(Handle,
  357.                             LA_Type,            XBAR_KIND,
  358.                         TAG_DONE);
  359.  
  360.                         LT_New(Handle,
  361.                             LA_LabelID,            MSG_CAPTUREPANEL_BUFFER_SCREEN_POSITION_GAD,
  362.                             LA_Type,            MX_KIND,
  363.                             LA_ID,                GAD_BUFFERSCREEN_POSITION,
  364.                             LA_BYTE,            &PrivateConfig->CaptureConfig->BufferScreenPosition,
  365.                             LAMX_FirstLabel,    MSG_CAPTUREPANEL_LEFT_TXT,
  366.                             LAMX_LastLabel,        MSG_CAPTUREPANEL_RIGHT_TXT,
  367.                         TAG_DONE);
  368.  
  369.                         LT_New(Handle,
  370.                             LA_Type,            XBAR_KIND,
  371.                         TAG_DONE);
  372.  
  373.                         LT_EndGroup(Handle);
  374.                     }
  375.  
  376.                     LT_New(Handle,
  377.                         LA_Type,    VERTICAL_KIND,
  378.                     TAG_DONE);
  379.                     {
  380.                         LT_New(Handle,
  381.                             LA_Type,        TEXT_KIND,
  382.                             LA_LabelID,        MSG_SCREENPANEL_CURRENT_DISPLAY_MODE_GAD,
  383.                             LA_Chars,        DISPLAYNAMELEN,
  384.                             LA_ID,            GAD_SCREENMODE,
  385.                             GTTX_Text,        ModeName,
  386.                             GTTX_Border,    TRUE,
  387.                             LATX_Picker,    TRUE,
  388.                             LATX_LockSize,    TRUE,
  389.                         TAG_DONE);
  390.  
  391.                         LT_EndGroup(Handle);
  392.                     }
  393.  
  394.                     LT_EndGroup(Handle);
  395.                 }
  396.  
  397.                 LT_New(Handle,
  398.                     LA_Type,    VERTICAL_KIND,
  399.                 TAG_DONE);
  400.                 {
  401.                     LT_New(Handle,
  402.                         LA_LabelID,            MSG_CAPTUREPANEL_OPEN_BUFFER_WINDOW_GAD,
  403.                         LA_Type,            MX_KIND,
  404.                         LA_ID,                GAD_OPEN_BUFFER_WINDOW,
  405.                         LA_BYTE,            &OpenBufferWindow,
  406.                         LAMX_FirstLabel,    MSG_CAPTUREPANEL_TOP_TXT,
  407.                         LAMX_LastLabel,        MSG_CAPTUREPANEL_END_TXT,
  408.                     TAG_DONE);
  409.  
  410.                     LT_New(Handle,
  411.                         LA_LabelID,            MSG_CAPTUREPANEL_REMEMBER_BUFFER_WINDOW_GAD,
  412.                         LA_Type,            CHECKBOX_KIND,
  413.                         LA_ID,                GAD_REMEMBER_WINDOW_POS,
  414.                         LA_BYTE,            &PrivateConfig->CaptureConfig->RememberBufferWindow,
  415.                         LA_ExtraSpace,        TRUE,
  416.                     TAG_DONE);
  417.  
  418.                     LT_EndGroup(Handle);
  419.                 }
  420.  
  421.                 LT_EndGroup(Handle);
  422.             }
  423.  
  424.             LT_New(Handle,
  425.                 LA_Type,    VERTICAL_KIND,
  426.             TAG_DONE);
  427.             {
  428.                 LT_New(Handle,
  429.                     LA_Type,        XBAR_KIND,
  430.                     LAXB_FullSize,    TRUE,
  431.                 TAG_DONE);
  432.  
  433.                 LT_EndGroup(Handle);
  434.             }
  435.  
  436.             LT_New(Handle,LA_Type,HORIZONTAL_KIND,
  437.                 LAGR_SameSize,    TRUE,
  438.                 LAGR_Spread,    TRUE,
  439.             TAG_DONE);
  440.             {
  441.                 LT_New(Handle,
  442.                     LA_Type,        BUTTON_KIND,
  443.                     LA_LabelID,        MSG_GLOBAL_USE_GAD,
  444.                     LA_ID,            GAD_USE,
  445.                     LABT_ReturnKey,    TRUE,
  446.                     LABT_ExtraFat,    TRUE,
  447.                 TAG_DONE);
  448.  
  449.                 LT_New(Handle,
  450.                     LA_Type,        BUTTON_KIND,
  451.                     LA_LabelID,        MSG_GLOBAL_CANCEL_GAD,
  452.                     LA_ID,            GAD_CANCEL,
  453.                     LABT_EscKey,    TRUE,
  454.                     LABT_ExtraFat,    TRUE,
  455.                 TAG_DONE);
  456.  
  457.                 LT_EndGroup(Handle);
  458.             }
  459.  
  460.             LT_EndGroup(Handle);
  461.         }
  462.  
  463.         if(PanelWindow = LT_Build(Handle,
  464.             LAWN_TitleID,        MSG_CAPTUREPANEL_CAPTURE_SETTINGS_TXT,
  465.             LAWN_HelpHook,        &GuideHook,
  466.             LAWN_Parent,        Parent,
  467.             WA_DepthGadget,        TRUE,
  468.             WA_DragBar,            TRUE,
  469.             WA_RMBTrap,            TRUE,
  470.             WA_Activate,        TRUE,
  471.             WA_SimpleRefresh,    TRUE,
  472.         TAG_DONE))
  473.         {
  474.             UBYTE DummyBuffer[MAX_FILENAME_LENGTH];
  475.             struct FileRequester *FileRequest;
  476.             struct IntuiMessage    *Message;
  477.             struct Gadget *MsgGadget;
  478.             ULONG MsgClass;
  479.             BOOL Done;
  480.  
  481.             GuideContext(CONTEXT_CAPTURE);
  482.  
  483.             PushWindow(PanelWindow);
  484.  
  485.             LT_ShowWindow(Handle,TRUE);
  486.  
  487.             Done = FALSE;
  488.  
  489.             do
  490.             {
  491.                 if(Wait(PORTMASK(PanelWindow->UserPort) | SIG_BREAK) & SIG_BREAK)
  492.                     break;
  493.  
  494.                 while(Message = LT_GetIMsg(Handle))
  495.                 {
  496.                     MsgClass    = Message->Class;
  497.                     MsgGadget    = (struct Gadget *)Message->IAddress;
  498.  
  499.                     LT_ReplyIMsg(Message);
  500.  
  501.                     if(MsgClass == IDCMP_GADGETUP)
  502.                     {
  503.                         switch(MsgGadget->GadgetID)
  504.                         {
  505.                             case GAD_CAPTURE_FILTER:
  506.  
  507.                                 LT_SetAttributes(Handle,GAD_CONVERT_CHARS,
  508.                                     GA_Disabled,    !PrivateConfig->CaptureConfig->CaptureFilterMode,
  509.                                 TAG_DONE);
  510.  
  511.                                 break;
  512.  
  513.                             case GAD_USE:
  514.  
  515.                                 LT_UpdateStrings(Handle);
  516.  
  517.                                 PrivateConfig->CaptureConfig->OpenBufferWindow = OpenBufferWindow;
  518.                                 PrivateConfig->CaptureConfig->OpenBufferScreen = OpenBufferScreen;
  519.                                 PrivateConfig->CaptureConfig->BufferScreenMode = DisplayMode;
  520.  
  521.                                 UseIt = Done = TRUE;
  522.                                 break;
  523.  
  524.                             case GAD_CANCEL:
  525.  
  526.                                 Done = TRUE;
  527.                                 break;
  528.  
  529.                             case GAD_LOGFILE:
  530.                             case GAD_CALL_LOGFILE:
  531.  
  532.                                 FindPath(PanelWindow,LT_GetString(Handle,MsgGadget->GadgetID),TRUE,NULL);
  533.                                 break;
  534.  
  535.                             case GAD_BUFFER_PATH:
  536.                             case GAD_CAPTURE_PATH:
  537.  
  538.                                 FindDrawer(PanelWindow,LT_GetString(Handle,MsgGadget->GadgetID),TRUE,NULL);
  539.                                 break;
  540.                         }
  541.                     }
  542.  
  543.                     if(MsgClass == IDCMP_IDCMPUPDATE)
  544.                     {
  545.                         switch(MsgGadget->GadgetID)
  546.                         {
  547.                             case GAD_LOGFILE:
  548.  
  549.                                 LT_LockWindow(PanelWindow);
  550.  
  551.                                 strcpy(DummyBuffer,LT_GetString(Handle,MsgGadget->GadgetID));
  552.  
  553.                                 if(FileRequest = SaveFile(PanelWindow,LocaleString(MSG_CAPTUREPANEL_SELECT_LOGFILE_TXT),LocaleString(MSG_GLOBAL_SELECT_TXT),NULL,DummyBuffer,sizeof(DummyBuffer)))
  554.                                 {
  555.                                     FreeAslRequest(FileRequest);
  556.  
  557.                                     FindPath(PanelWindow,DummyBuffer,TRUE,NULL);
  558.  
  559.                                     LT_SetAttributes(Handle,MsgGadget->GadgetID,
  560.                                         GTST_String,    DummyBuffer,
  561.                                     TAG_DONE);
  562.                                 }
  563.  
  564.                                 LT_UnlockWindow(PanelWindow);
  565.                                 break;
  566.  
  567.                             case GAD_CALL_LOGFILE:
  568.  
  569.                                 LT_LockWindow(PanelWindow);
  570.  
  571.                                 strcpy(DummyBuffer,LT_GetString(Handle,MsgGadget->GadgetID));
  572.  
  573.                                 if(FileRequest = SaveFile(PanelWindow,LocaleString(MSG_CAPTUREPANEL_SELECT_CALL_LOGFILE_TXT),LocaleString(MSG_GLOBAL_SELECT_TXT),NULL,DummyBuffer,sizeof(DummyBuffer)))
  574.                                 {
  575.                                     FindPath(PanelWindow,DummyBuffer,TRUE,NULL);
  576.  
  577.                                     LT_SetAttributes(Handle,MsgGadget->GadgetID,
  578.                                         GTST_String,    DummyBuffer,
  579.                                     TAG_DONE);
  580.  
  581.                                     FreeAslRequest(FileRequest);
  582.                                 }
  583.  
  584.                                 LT_UnlockWindow(PanelWindow);
  585.                                 break;
  586.  
  587.                             case GAD_BUFFER_PATH:
  588.  
  589.                                 LT_LockWindow(PanelWindow);
  590.  
  591.                                 strcpy(DummyBuffer,LT_GetString(Handle,MsgGadget->GadgetID));
  592.  
  593.                                 if(FileRequest = SaveDrawer(PanelWindow,LocaleString(MSG_CAPTUREPANEL_SELECT_BUFFER_PATH_TXT),LocaleString(MSG_GLOBAL_SELECT_TXT),DummyBuffer,sizeof(DummyBuffer)))
  594.                                 {
  595.                                     FreeAslRequest(FileRequest);
  596.  
  597.                                     FindDrawer(PanelWindow,DummyBuffer,TRUE,NULL);
  598.  
  599.                                     LT_SetAttributes(Handle,MsgGadget->GadgetID,
  600.                                         GTST_String,    DummyBuffer,
  601.                                     TAG_DONE);
  602.                                 }
  603.  
  604.                                 LT_UnlockWindow(PanelWindow);
  605.                                 break;
  606.  
  607.                             case GAD_CAPTURE_PATH:
  608.  
  609.                                 LT_LockWindow(PanelWindow);
  610.  
  611.                                 strcpy(DummyBuffer,LT_GetString(Handle,MsgGadget->GadgetID));
  612.  
  613.                                 if(FileRequest = SaveDrawer(PanelWindow,LocaleString(MSG_CAPTUREPANEL_SELECT_CAPTURE_PATH_TXT),LocaleString(MSG_GLOBAL_SELECT_TXT),DummyBuffer,sizeof(DummyBuffer)))
  614.                                 {
  615.                                     FreeAslRequest(FileRequest);
  616.  
  617.                                     FindDrawer(PanelWindow,DummyBuffer,TRUE,NULL);
  618.  
  619.                                     LT_SetAttributes(Handle,MsgGadget->GadgetID,
  620.                                         GTST_String,    DummyBuffer,
  621.                                     TAG_DONE);
  622.                                 }
  623.  
  624.                                 LT_UnlockWindow(PanelWindow);
  625.                                 break;
  626.  
  627.                             case GAD_SCREENMODE:
  628.  
  629.                                 LT_LockWindow(PanelWindow);
  630.  
  631.                                 if(PickDisplayMode(PanelWindow,&DisplayMode,NULL))
  632.                                 {
  633.                                     GetModeName(DisplayMode,ModeName,sizeof(ModeName));
  634.  
  635.                                     LT_SetAttributes(Handle,GAD_SCREENMODE,
  636.                                         GTTX_Text,    ModeName,
  637.                                     TAG_DONE);
  638.                                 }
  639.  
  640.                                 LT_UnlockWindow(PanelWindow);
  641.  
  642.                                 LT_ShowWindow(Handle,TRUE);
  643.  
  644.                                 break;
  645.                         }
  646.                     }
  647.                 }
  648.             }
  649.             while(!Done);
  650.  
  651.             PopWindow();
  652.         }
  653.  
  654.         LT_DeleteHandle(Handle);
  655.     }
  656.  
  657.     if(UseIt)
  658.         SwapConfig(LocalConfig,PrivateConfig);
  659.     else
  660.         SaveConfig(LocalConfig,PrivateConfig);
  661.  
  662.     return(UseIt);
  663. }
  664.